home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / c-lang / strmc105.lha / StormC-Demo / INCLUDE / clib / utility_protos.h < prev    next >
C/C++ Source or Header  |  1996-01-02  |  4KB  |  135 lines

  1. #ifndef  CLIB_UTILITY_PROTOS_H
  2. #define  CLIB_UTILITY_PROTOS_H
  3.  
  4. /*
  5. **    $VER: utility_protos.h 39.12 (10.2.93)
  6. **    Includes Release 40.15
  7. **
  8. **    C prototypes. For use with 32 bit integers only.
  9. **
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef  EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif
  17. #ifndef  EXEC_PORTS_H
  18. #include <exec/ports.h>
  19. #endif
  20. #ifndef  UTILITY_TAGITEM_H
  21. #include <utility/tagitem.h>
  22. #endif
  23. #ifndef  UTILITY_DATE_H
  24. #include <utility/date.h>
  25. #endif
  26. #ifndef  UTILITY_HOOKS_H
  27. #include <utility/hooks.h>
  28. #endif
  29. #ifndef  UTILITY_NAME_H
  30. #include <utility/name.h>
  31. #endif
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36.  
  37. /*--- functions in V36 or higher (Release 2.0) ---*/
  38.  
  39. /* Tag item functions */
  40.  
  41. struct TagItem *FindTagItem( Tag tagVal, struct TagItem *tagList );
  42. ULONG GetTagData( Tag tagValue, unsigned long defaultVal,
  43.     struct TagItem *tagList );
  44. ULONG PackBoolTags( unsigned long initialFlags, struct TagItem *tagList,
  45.     struct TagItem *boolMap );
  46. struct TagItem *NextTagItem( struct TagItem **tagListPtr );
  47. void FilterTagChanges( struct TagItem *changeList,
  48.     struct TagItem *originalList, unsigned long apply );
  49. void MapTags( struct TagItem *tagList, struct TagItem *mapList,
  50.     unsigned long mapType );
  51. struct TagItem *AllocateTagItems( unsigned long numTags );
  52. struct TagItem *CloneTagItems( struct TagItem *tagList );
  53. void FreeTagItems( struct TagItem *tagList );
  54. void RefreshTagItemClones( struct TagItem *clone, struct TagItem *original );
  55. BOOL TagInArray( Tag tagValue, Tag *tagArray );
  56. ULONG FilterTagItems( struct TagItem *tagList, Tag *filterArray,
  57.     unsigned long logic );
  58.  
  59. /* Hook functions */
  60.  
  61. ULONG CallHookPkt( struct Hook *hook, APTR object, APTR paramPacket );
  62.  
  63. /* Date functions */
  64.  
  65. void Amiga2Date( unsigned long seconds, struct ClockData *result );
  66. ULONG Date2Amiga( struct ClockData *date );
  67. ULONG CheckDate( struct ClockData *date );
  68.  
  69. /* 32 bit integer muliply functions */
  70.  
  71. LONG SMult32( long arg1, long arg2 );
  72. ULONG UMult32( unsigned long arg1, unsigned long arg2 );
  73.  
  74. /* 32 bit integer division funtions. The quotient and the remainder are */
  75. /* returned respectively in d0 and d1 */
  76.  
  77. LONG SDivMod32( long dividend, long divisor );
  78. ULONG UDivMod32( unsigned long dividend, unsigned long divisor );
  79. /*--- functions in V37 or higher (Release 2.04) ---*/
  80.  
  81. /* International string routines */
  82.  
  83. LONG Stricmp( STRPTR string1, STRPTR string2 );
  84. LONG Strnicmp( STRPTR string1, STRPTR string2, long length );
  85. UBYTE ToUpper( unsigned long character );
  86. UBYTE ToLower( unsigned long character );
  87. /*--- functions in V39 or higher (Release 3) ---*/
  88.  
  89. /* More tag Item functions */
  90.  
  91. void ApplyTagChanges( struct TagItem *list, struct TagItem *changeList );
  92.  
  93. /* 64 bit integer muliply functions. The results are 64 bit quantities */
  94. /* returned in D0 and D1 */
  95.  
  96. LONG SMult64( long arg1, long arg2 );
  97. ULONG UMult64( unsigned long arg1, unsigned long arg2 );
  98.  
  99. /* Structure to Tag and Tag to Structure support routines */
  100.  
  101. ULONG PackStructureTags( APTR pack, ULONG *packTable,
  102.     struct TagItem *tagList );
  103. ULONG UnpackStructureTags( APTR pack, ULONG *packTable,
  104.     struct TagItem *tagList );
  105.  
  106. /* New, object-oriented NameSpaces */
  107.  
  108. BOOL AddNamedObject( struct NamedObject *nameSpace,
  109.     struct NamedObject *object );
  110. struct NamedObject *AllocNamedObjectA( STRPTR name, struct TagItem *tagList );
  111. struct NamedObject *AllocNamedObject( STRPTR name, Tag tag1, ... );
  112. LONG AttemptRemNamedObject( struct NamedObject *object );
  113. struct NamedObject *FindNamedObject( struct NamedObject *nameSpace,
  114.     STRPTR name, struct NamedObject *lastObject );
  115. void FreeNamedObject( struct NamedObject *object );
  116. STRPTR NamedObjectName( struct NamedObject *object );
  117. void ReleaseNamedObject( struct NamedObject *object );
  118. void RemNamedObject( struct NamedObject *object, struct Message *message );
  119.  
  120. /* Unique ID generator */
  121.  
  122. ULONG GetUniqueID( void );
  123.  
  124. #ifdef __cplusplus
  125. }
  126. #endif
  127.  
  128. #ifdef STORMPRAGMAS
  129. #ifndef _INCLUDE_PRAGMA_UTILITY_LIB_H
  130. #include <pragma/utility_lib.h>
  131. #endif
  132. #endif
  133.  
  134. #endif     /* CLIB_UTILITY_PROTOS_H */
  135.